------------------------------ Variation "False Alarm" Trials ------------------------------ In the Visual Basic programme 'Variation', a small amount of random variation is added in to the x-velocity of the ball as it leaves the launcher, and a small amount of y-velocity is added to the ball after it bounces on the baseline. The magnitude of these added velocities are based on Visual Basic's random number generator transformed by the Polar Marsaglia method to produce the normal (bell-shaped) distribution of results. I understand that probability theory predicts that with no special variation present, there will be an average of one point plotting outside the control lines in 370 subgroups on the average chart. (source - Donald J. Wheeler's 'Understanding Statistical Process Control'). Trials were undertaken to try to determine if this programme produces more of these 'false alarms' than would be expected from real processes. Below are results of tests to count the number of points outside control lines. Default settings every time (i.e. only common causes of variation present). 800 subgroups of 5 in each trial. Control lines calculated using all 800 subgroups. Number outside control lines: Trial Xbar Range 1 1 4 2 2 2 3 4 2 4 2 4 5 0 2 6 4 4 7 2 0 8 0 5 9 5 1 10 0 3 11 1 4 12 1 4 13 1 1 14 1 3 15 0 3 16 0 3 17 2 2 18 0 2 19 4 3 20 1 6 21 2 4 22 2 2 23 4 2 24 1 2 25 5 3 26 1 0 27 1 5 28 1 7 29 1 5 30 1 4 Totals 50 92 Results: Average chart: 50 false alarms in 24,000 subgroups i.e. 1 in 480 subgroups or 1 in 2400 shots Range chart: 92 false alarms in 24,000 subgroups i.e. 1 in 260 subgroups or 1 in 1300 shots *********************************************************** To get as close as possible to the theoretical values for the control lines, the trials above used all 800 subgroups in the calculations. Using smaller numbers of subgroups is bound to introduce extra errors. Below is the results of tests to see the effects of using different sets of subgroups to calculate the control lines First, all the subgroups were used as before, then different sets of 50 subgroups were used. Remember that there should be no special causes of variation at any point in this data. Data from Trial 1: Number outside control lines: Subgroup UCLxbar LCLxbar UCLrange Xbar Range All 800 506.6 339.0 307.2 1 4 1 - 50 506.3 336.3 311.0 0 3 51 - 100 504.7 333.3 314.3 0 3 101 - 150 510.1 350.0 292.3 3 6 151 - 200 504.3 353.7 276.0 4 7 201 - 250 501.6 333.9 307.4 1 4 251 - 300 496.0 336.8 291.7 5 6 Data from Trial 2: Number outside control lines Subgroup UCLxbar LCLxbar UCLrange Xbar Range All 800 506.8 337.7 309.9 2 2 1 - 50 507.8 339.1 309.3 2 2 51 - 100 505.2 331.0 319.3 3 2 101 - 150 507.8 333.4 319.7 2 2 151 - 200 513.2 337.2 322.5 1 2 201 - 250 500.6 341.7 291.2 4 4 251 - 300 500.8 337.0 300.3 4 3 *********************************************************** I am not a statistician, so I would like to know if any of the above indicates that this programme produces more false alarms than could be expected from real stable processes. If this is the case, then we may have to conclude that Visual Basic's random number generator is not 100% statistically stable. I would be grateful to hear from anyone who has experience or knowledge of this subject. Thanks in advance. Steve Horn, 21 Benjamin Drive, Bo'ness, West Lothian EH51 0QS, United Kingdom CompuServe 100116,3151 Internet steve@horn.demon.co.uk 4 January 1995